Method and System for Management of Synchronization of a Mobile Electronic Device

ABSTRACT

The present technology provides a method, system and computer program product for managing the synchronization of a mobile electronic device, wherein management and adjustment of the synchronization process can be provided at least in part on a session by session basis. The synchronization process may be configurable via a user interface. Aspects of the user interface, such as prompts or degree of user configurability, may be adjusted depending on one or more factors, such as link effective speed or expected synchronization time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 12/954,818 filed on Nov. 26, 2010, which claimspriority to U.S. Provisional Patent Application No. 61/369,844. Theforgoing application is incorporated by reference herein in itsentirety.

RESERVATION OF COPYRIGHT

A portion of the disclosure of this patent document contains material towhich a claim of copyright protection is made. The copyright owner hasno objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure as it appears in the Patent andTrademark Office patent file or records, but reserves all other rightswhatsoever.

TECHNICAL FIELD

The present disclosure relates generally to mobile electronic devicesand, in particular, to techniques for managing the synchronization of amobile electronic device.

BACKGROUND

Mobile electronic devices such as cellular telephones, handheld PDAs,and the like, are typically configured for synchronization with acomputing device, thereby enabling for example the backup or updating orboth, of the information contained on the mobile electronic device orthe computing device or both.

Currently, the synchronization of a mobile electronic device and acomputing device typically occurs upon the operative interconnection ofthese devices. The synchronization process is typically defined by aseries of predetermined parameters, therefore limiting the flexibilityof the synchronization process.

Therefore there is a need for a new method and system forsynchronization of a mobile electronic device that overcomes one or moreproblems in the art.

BRIEF DESCRIPTION OF THE DRAWINGS

Further features and advantages of the present technology will becomeapparent from the following detailed description, taken in combinationwith the appended drawings, in which:

FIG. 1A illustrates a method for synchronizing a mobile electronicdevice with a computing device according to embodiments of the presenttechnology;

FIG. 1B illustrates another method for synchronizing a mobile electronicdevice with a computing device according to embodiments of the presenttechnology;

FIG. 2 illustrates a portion of a method for synchronizing a mobileelectronic device with a computing device, according to embodiments ofthe present technology;

FIG. 3 illustrates a system for synchronization of a mobile electronicdevice with a computing device according to embodiments of the presenttechnology;

FIG. 4 is a schematic depiction of a synchronization module according toembodiments of the present technology;

FIG. 5 is a screen capture of step(s) of a method for synchronizing amobile electronic device with a computing device according toembodiments of the present technology;

FIG. 6 is a close-up of a portion of the screen capture illustrated inFIG. 5;

FIG. 7 illustrates notifications that are presented during a selectionprocess, according to embodiments of the present technology;

FIG. 8 is a screen capture of step(s) of a method for synchronizing amobile electronic device with a computing device according toembodiments of the present technology;

FIG. 9 illustrates a configurable and expandable menu presented during aselection process, according to embodiments of the present technology;

FIG. 10 illustrates a block diagram of an exemplary wirelesscommunication device; and

FIG. 11 illustrates a portion of a method for synchronizing a mobileelectronic device with a computing device, according to embodiments ofthe present technology.

It will be noted that throughout the appended drawings, like featuresare identified by like reference numerals.

DETAILED DESCRIPTION

The present technology generally provides a method, system, and computerprogram product for management of synchronization of a mobile electronicdevice, wherein management of the synchronization process can beprovided on a case by case basis.

Accordingly, an aspect of the present technology provides a method ofsynchronizing a mobile electronic device with a computing device. Themethod comprises operatively coupling the mobile electronic device witha synchronization module at least in part operative on the computingdevice. The method further comprises scanning the mobile electronicdevice by the synchronization module, and subsequently determining ifone or more pieces of data require synchronization. The method furthercomprises determining and providing a user with one or more options forselection, wherein each option defines a synchronizing sequence. Inaddition the method comprises synchronizing the mobile electronic devicewith the computing device based at least in part on the synchronizingsequence that was selected by the user.

Another aspect of the present technology provides a computer programproduct comprising code adapted to perform acts associated with theforegoing method when the code is loaded into memory and executed on aprocessor of a computing device.

Yet another aspect of the present technology provides a systemconfigured to synchronize a mobile electronic device with a computingdevice. The system comprises a synchronization module at least in partoperative on the computing device. The synchronization module isconfigured to scan the mobile electronic device and determine if one ormore pieces of data require synchronization. The synchronization moduleis further configured to determine one or more options, wherein eachoption defines a synchronizing sequence. The system further comprises anoutput device operatively coupled to the synchronization module, whereinthe output device is configured to present the one or more options to auser for selection. In addition, the system includes an input deviceoperatively coupled to the synchronization module, wherein the inputdevice is configured to receive an input from the user, wherein theinput is indicative of the selected synchronizing sequence. Based on theselected synchronizing sequence, the synchronizing module is configuredto perform the synchronization between the mobile electronic device andthe computing device.

A mobile electronic device and a computing device may be capable ofbeing operatively interconnected via one or more wired or wirelesscommunication links. Wireless communication links may includeBluetooth™, IEEE 802.11 or Wi-Fi™, Wireless USB, ZigBee™, Infraredlinks, or the like, or other wireless communication links as would bereadily understood by a worker skilled in the art. Wired communicationlinks may include USB™, Firewire™, Ethernet™, or the like, or otherserial or parallel wired communication links as would be readilyunderstood by a worker skilled in the art. Each type of link isassociated with parameters such as protocol type, communicationoverhead, link reliability, link uptime, bandwidth, delay, bit errorrate, block error rate, signal-to-noise ratio, averages, ranges,variances, aggregates or estimates of such parameters, and the like.Such parameters may further be range dependent, particularly forwireless links. A data link may be generally classified by the speed atwhich communication operations such as synchronization can occur.Effective speed may relate to the number of data units per second thatcan be effectively synchronized after overhead operations such asconnection management, error correction, and the like, are accountedfor, and given parameters associated with the link.

According to embodiments of the present technology, aspects of thesynchronization may vary based on the type of communication link betweenthe computing device and the mobile electronic device, link parameterssuch those described above, link effective speed, and the like. If thecomputing device and the mobile electronic device are coupled via plurallinks, aspects of the synchronization may vary based on the types oflinks, aggregates of parameters corresponding to the individual links, atotal effective speed when utilizing the plural links, or a combinationthereof.

For example, in some embodiments, user prompting, options related tosynchronization, or both, may be varied based on type or types ofcommunication links between computing device and mobile electronicdevice, link parameters, link effective speed, or a combination thereof.For example, if the operative coupling between the computing device andthe mobile electronic device is determined to have at least apredetermined effective speed, or synchronization is expected to takeless than a predetermined threshold amount of time, then thesynchronization may occur automatically or a reduced number of options,relative to slower couplings or longer synchronization times, may bepresented via a user interface for configuring the synchronization. Thismay be the case for example when the communication link is a high-speedEthernet connection or USB™ 2.0 connection. For example, such anembodiment may substantially reduce the level of user input whensynchronization is expected to be completed in a relatively short timeregardless of prioritization. Thus, unnecessary or superfluous userinput to select data, prioritize data, or both, to be synchronized maybe avoided in some embodiments, based on communication linkcapabilities.

Similarly, in some embodiments, when the operative interconnectionbetween computing device and mobile electronic device is classified as“slow,” for example in terms of link type, effective speed, expectedsynchronization time, or the like, the level of user prompting, userinput, or both, may be increased relative to when the operativeinterconnection is classified as “fast.” For example, when the estimatedtime required for total synchronization exceeds a predeterminedthreshold, the user may be presented with an extended list of optionsfor choosing data to synchronize and for prioritizing which data tosynchronize first, or both.

In some embodiments, if the operative interconnection between computingdevice and mobile electronic device is determined to be sufficientlyslow or unreliable, a warning may be issued advising the user of thelink quality.

In some embodiments, users may be capable of overriding automaticoperations. Alternatively, a “synchronization assistant” may beconfigured to make recommendations to a user, instead of automaticallyadjusting the information and options available to the user.

In some embodiments, other aspects of the synchronization may beadjusted based on speed or other parameters related to the operativeinterconnection between computing device and mobile electronic device.For example, aspects of data files to be synchronized, such resolution,quality, compression rate, or the like, may be automatically adjusted toaccommodate slower connections or take advantage of faster connections,or an option may be presented to the user, possibly along with anappropriate recommendation, for adjusting such aspects. These optionsmay be particularly suited for adjusting data files such as pictures,video, audio and multimedia files.

In some embodiments, an option may be presented for a user to specify atime budget for synchronization. The time budget may be saved in memoryof the computing device, the mobile electronic device, or a combinationthereof, and applied to subsequent synchronizations, or it may bespecified at each synchronization. The time budget may be compared withone or more expected synchronization times, and a level of userprompting, user options, or both, may be presented based on thecomparison. For example, if synchronization of all files ofpredetermined types can be completed within the time budget, thensynchronization may proceed automatically. As the expected time forsynchronization increases beyond the time budget, more options, prompts,or a combination thereof, may be presented, so that a user canprioritize which files to synchronize, and the order or prioritizationof files to be synchronized.

In some embodiments, expected amounts of time available forsynchronization, or time related to user-specified time budgets, orboth, may depend at least in part on the type or types of operativecouplings between computing device and mobile electronic device. Forexample, if the operative coupling comprises a medium-range wirelesslink such as Wi-Fi™, the expected amount of time available forsynchronization may be greater than if the operative coupling is only ashort-range wireless link such as Bluetooth™, since the device can roamfurther under the medium-range link while maintaining connectivity tosupport synchronization. As another example, if the operative couplingcomprises a wired link which also charges the mobile electronic device,such as USB™, and the battery level of the mobile electronic device isbelow a predetermined threshold, then the expected amount of timeavailable for synchronization may be larger than if another, moretemporary link is used, if it is deemed likely that the mobileelectronic device will be connected for an extended period of time tofacilitate charging.

According to embodiments of the present technology, the selectedsynchronization sequence is indicative of the one or more pieces of datathat require synchronization based on user selection. The selected oneor more pieces of data defined by the selected option, can be defined byvarying levels of specificity. For example, the selected one or morepieces of data defined by the selected option can be all unsynchronizedpersonal information management (PIM) data, all unsynchronized calendardata, or unsynchronized calendar data for a specific month, week oryear. As a further example, the selected one or more pieces of datadefined by the selected option, can be all unsynchronized multi-mediadata, or all music data, or selected specific songs or selected specificpicture or combinations thereof. Accordingly, as the user is able toselect the amount of unsynchronized data that is to be synchronized, theuser is provided with a level of control over the time it takes forsynchronization.

According to embodiments of the present technology, the method, systemand computer program product for user selective synchronization of amobile electronic device with a computing device are configured tooperate independent of one or more predetermined synchronizationprocesses that are pre-enabled on the mobile device or computing deviceor both. The predetermined synchronization processes can be, for examplebased on setup parameters of mobile electronic device in associationwith the computing device. In addition, the performance of the selectedsynchronization process can done such that the one or more predeterminedsynchronization processes are unchanged.

As discussed herein, a computing device is a device comprising amicroprocessor (or simply a “processor”) which interacts with memory inthe form of RAM, ROM, Flash, EPROM, EEPROM or other memory format toenable a variety of device functions and to execute an operating systemfor running software applications loaded on the computing device. Interms of input/output devices or user interfaces (UI's), a computingdevice may include a display (e.g. a LCD screen), touch screen, athumbwheel, a trackball, a keyboard, a USB or serial port for connectingto peripheral equipment among others. Examples of a computing device caninclude a desktop computer, server, laptop, netbook, tablet, smartphone, personal digital assistance or other computing device as would bereadily understood. Furthermore, a mobile electronic device is acomputing device which is configured for mobility mobile, for example alaptop, netbook, tablet, smart phone, personal digital assistance orother computing device configured for mobility as would be readilyunderstood. In addition, a wireless communication device is a devicehaving appropriate communication capabilities, such as voicecommunication capabilities, data communication capabilities, or acombination thereof. The term “wireless communication device”, for thepurposes of this specification, shall include any wireless handheld,smart phone, PDA, tablet, laptop, netbook, or other communicationsdevice that is capable of transmission and reception of data via awireless communication medium such as radio.

The details and particulars of these aspects of the technology will nowbe described below, by way of example, with reference to the attacheddrawings.

FIG. 1A illustrates a method for synchronizing a mobile electronicdevice with a computing device according to embodiments of the presenttechnology. Initially, the mobile electronic device is operativelycoupled 100 to the computing device, for example by establishing a wiredor wireless communication link therebetween. A synchronization module iseither operative prior to this coupling or initiated upon or subsequentto coupling, and the synchronization module initially scans 110 themobile electronic device or the computing device or both. The scanningprocess can be used in order to evaluate or determine if one or morepieces of data are not synchronized with respect to the mobileelectronic device and the computing device. That is, the scanningprocess determines 120 whether a synchronization operation is required.Upon this determination the synchronization module determines 130 one ormore options for synchronization, wherein each of the one or moreoptions is indicative of a synchronization sequence. For example, if aplurality of pieces of data require synchronization, the synchronizationmodule can determine one or more options for synchronization, whereineach of the options enables the synchronization of particular pieces ofdata, for example, only calendar data, or only address data, or onlymusic data or only one or more other data types or combinations of datatypes. These one or more options are subsequently provided to the userfor selection. Upon selection of an option, the synchronization modulesubsequently performs 140 the synchronization process which isassociated with the selected option. Selection of an option may compriseone or more input operations, for example to click one or more virtualbuttons or select one or more checkboxes. Selection of an option maypossibly comprise detailed customization of the option, for example bymanipulating drop down or hierarchical menus, rather than selecting anoption from a simple list.

FIG. 1B illustrates another method for synchronizing a mobile electronicdevice with a computing device according to embodiments of the presenttechnology. As with the method of FIG. 1A, the mobile electronic deviceis operatively coupled 100 to the computing device, the synchronizationmodule initially scans 110 the mobile electronic device or the computingdevice or both and determines 120 whether synchronization is required.Additionally, after the mobile electronic device is operatively coupled100 to the computing device, the synchronization module determines 150one or more aspects of the operative interconnection between computingdevice and mobile electronic device, such as link type, link parameters,and link effective speed. Based on the above determinations 120 and 150,the synchronization module determines 160 one or more options forsynchronization, which are subsequently provided to the user forselection. For example, more options for synchronization may bepresented when there is a large amount of data to synchronize, a slowlink effective speed, or a combination thereof, and fewer options may bepresented when there is a small amount of data to synchronize, a fastlink effective speed, or a combination thereof, thereby prompting a userfor prioritization of synchronization tasks only as much as isnecessary. As another example, the default option or options may beadjusted based on the determinations 120 and 150. Upon selection of anoption, the synchronization module subsequently performs 140 thesynchronization process which is associated with the selected option.

According to embodiments of the present technology, by providing a userwith options of what to synchronize between the mobile electronic deviceand the computing device, a user is provided with the ability toactively control the synchronization process on a case by case basis.

In some embodiments of the present technology, the synchronizationmodule is configured to scan third party software applications for oneor more pieces of data associated therewith that requiresynchronization. For example, if the mobile electronic device comprisesan iTunes™ application, the synchronization module can be configured toidentify one or more of the songs that require synchronization.

In some embodiments, the determining and providing options for selectionprocess can be an iterative process. For example, upon an initialselection of a general option by a user, the synchronization module canperform a subsequent discovery operation regarding the one or morepieces of data that require synchronization. For example, and asillustrated in FIG. 2, a first scan by the synchronization moduleprovides for the determination of one or more classes of data thatrequire synchronization 200. For example the synchronization module maydetermine that there are one or more pieces of PIM data or one or morepieces of music data or one or more pieces of video data, or the like orcombinations thereof, that require synchronization. In this case, thesynchronization module provides the user with options based on theseidentified classes. Upon selection of an option, the synchronizationmodule performs a further scan in order to determine 210 what particularpieces of data, that are in the one or more classes defined by theselected option, require synchronization. The synchronization modulesubsequently determines and provides further options for selectionwherein these further options may be indicative of the specific piecesof data that have been determined 220. For example, if the user hasselected to synchronize photo data, the synchronization moduledetermines which photos are not synchronized, and presents theunsynchronized photos to the user for selection. Based upon the furtheroption selected, the synchronization module would synchronize 230 thepieces of data represented by the further option selected. In thismanner, and for the above example relating to photo data, a user ispresented with the capability to select particular photos which theywish to synchronize.

In some embodiments of the present technology, the synchronizationmodule performs the further scan to determine what particular pieces ofdata require synchronization prior to user selection of one of theoptions based on these identified classes. In these embodiments, thefurther scan can be performed by the synchronization module in thebackground. The synchronization module subsequently determines andprovides further options for selection wherein these further options maybe indicative of the specific pieces of data that have been determined.Based upon the further option selected, the synchronization module wouldsynchronize the pieces of data represented by the further optionselected. By performing the further scan in the background, uponselection of the a further option by a user, the details of the specificpieces of data may be readily available, as this selection of a furtheroption may not initiate the further scan.

In some embodiments, with respect to the further options which representspecific pieces of data, each of these pieces of data may be presentedas being selected for synchronization, wherein the user is provided withthe option of de-selecting particular pieces of data forsynchronization.

According to embodiments of the present technology, by performing aniterative process for the selection of the one or more pieces of datafor synchronization, the synchronization module can perform the selectedtasks in a more efficient manner. For example, if initially thesynchronization module determined the specifics of all or predeterminedgroups of the pieces of data to be synchronized, time and energy mayhave been used substantially unnecessarily should the user only selectto synchronize the photo data. In some embodiments of the presenttechnology, there can be a plurality of iterations leading to theidentification of the one or more pieces of data to be synchronized.

In some embodiments of the present technology, upon scanning anddetermination of the one or more pieces of data, the synchronizationmodule can save at least some of the details relating to the one or morepieces of data that are not selected for synchronization during aparticular synchronization operation or session. The synchronizationmodule can cache or save some or all this information on the mobileelectronic device or the computing device or both. In this manner, thesynchronization module can potentially speed up future synchronizationoperations or sessions based on pre-discovered information relating tothe one or more pieces of information for synchronization.

In some embodiments, synchronization may proceed automatically as itemsare selected for synchronization. This may accelerate synchronizationoperations since synchronization can begin even before the user hasselected all data to be synchronized.

According to embodiments of the present technology, during the scanningand determination process, a sequence of steps can include: creating async task to execute synchronization operations for particular type ofdata, for example photos; providing metadata for the sync task; enablingor disabling error handling for the sync task; enabling or disablingsync task interruption or cancellation capabilities; and adding the oneor more sync tasks to an event list. During the synchronization process,the event list can be referenced by the synchronization module for thesubsequent sync task to be performed. The event list may be a queue ofsync tasks, with tasks toward the front of the queue executed beforetasks toward the back of the queue. In some embodiments, order of tasksin the queue may be adjusted by the user. For example the specific orderof tasks may be set, or tasks may be assigned priority levels, the eventlist then sorted so that higher priority tasks appear before lowerpriority tasks in the queue.

According to embodiments of the present technology, during thesynchronization of the one or more selected pieces of data, thesynchronization module can provide the user with an indication of theprogress of the synchronization sequence. For example, the indicationcan be representative of the time remaining, number of pieces of dataremaining to be synchronized or the like. According to some embodimentsof the present technology, the indication is data type innocuous, andthus is not representative of the specific type of data left to besynchronized. In some embodiments, the indication may be representativeof a range of times, for example from an estimated minimum timeremaining to an estimated maximum time remaining, optionally withfurther indication of an expected time remaining. In some embodiments,the indication may be representative of time remaining for differenttypes of tasks, for example time remaining to complete high prioritysynchronization tasks, medium priority synchronization tasks, and lowpriority synchronization tasks.

In some embodiments, an option may be provided to schedule aninterruption of synchronization. For example, after synchronization hasbegun, a user may input that synchronization is to be interrupted aftercompletion of the current task, after completion of tasks of a prioritylevel or priority type corresponding to tasks currently being performed,or the like.

In some embodiments of the present technology, the indication of theprogress of the synchronization sequence is presented to a user withdetails, for example what type of data remains to be synchronized orwhat has been completed or both. For example, the indication may definehow many photos are still to be synchronized. According to someembodiments, the indication of progress is further configured to providea user with the ability to prioritize synchronization sequences ofspecific pieces of data or groups of pieces of data.

According to embodiments of the present technology, upon initialoperative coupling of the mobile electronic device and the computingdevice, the synchronization module performs a mobile electronic devicediscovery process, wherein identification parameters of said mobileelectronic device are captured by the synchronization module forsubsequent presentation to a user, thereby enabling a user to verifythat the correct mobile electronic device is to be synchronized. In someembodiments, the synchronization module captures a copy of the homescreen or wallpaper of the operatively coupled mobile electronic device.The synchronization module can subsequently present this captured homescreen or wallpaper to the user to enable a visual confirmation of themobile device which is operatively coupled for synchronization. In someembodiments, the discovery process may further determine the type ofcommunication link or links between mobile electronic device andcomputing device, or the speed, effective speed, or available bandwidthassociated with the communication link or links, or a combinationthereof, or the like. Link speed may be determined from factors such aslink bandwidth, delay, and error rate, for example.

Acts associated with the method described herein can be implemented ascoded instructions in a computer program product. In other words, thecomputer program product is a computer-readable medium upon whichsoftware code is recorded to execute the method when the computerprogram product is loaded into memory and executed on the microprocessorof a computing device.

Acts associated with the method described herein can be implemented ascoded instructions in plural computer program products. For example, afirst portion of the method may be performed using one computing device,and a second portion of the method may be performed using anothercomputing device, server, mobile electronic device or the like. In thiscase, each computer program product is a computer-readable medium uponwhich software code is recorded to execute appropriate portions of themethod when a computer program product is loaded into memory andexecuted on the microprocessor of a computing device.

At least portions of the method described herein can be implemented on awireless communications device having appropriate communicationcapabilities, such as voice communication capabilities, datacommunication capabilities, or a combination thereof. The term “wirelesscommunication device”, for the purposes of this specification, shallinclude any wireless handheld, smart phone, PDA, tablet, laptop,netbook, or other communications device that is capable of transmissionand reception of data via a wireless communication medium such as radio.

According to embodiments of the present technology, as illustrated inFIG. 3, there is provided a system configured to synchronize a mobileelectronic device 330 with a computing device 340. The system comprisesa synchronization module 300 at least in part operative on the computingdevice 340. The synchronization module 300 is configured to scan themobile electronic device 330 and determine if one or more pieces of datarequire synchronization. The synchronization module may further beconfigured to determine aspects associated with the communication linkbetween mobile electronic device 330 and computing device 340, such aslink type, speed, available bandwidth, link reliability, or the like.The synchronization module is further configured to determine one ormore options, wherein each option defines a synchronizing sequence. Anoutput device 320 operatively coupled to the synchronization module 300is configured to present the one or more options to a user forselection. An input device 310 operatively coupled to thesynchronization module 300 is configured to receive an input from theuser, wherein the input is indicative of the selected synchronizingsequence. The synchronizing module is further configured to perform thesynchronization between the mobile electronic device and the computingdevice based on the selected synchronization sequence, and in someembodiments to monitor progress of the synchronization and presentoutput indicative thereof via the output device 320.

According to some embodiments of the present technology, thesynchronization module is configured to substantially optimize theoutput information for presentation to a user, for example configuringthe output for a particular screen size, resolution or the like, whichmay include scaling of images, transcoding of video, or the like. Thesynchronization module may transform data being transferred to themobile electronic device into a form appropriate for use thereon.

According to some embodiments, the synchronization module is configuredto scan for the one or more pieces of data using one or more dataefficient methods or algorithms, for example analysis of checksums, filesizes, log files, metadata such as tags or data modification dates, orother method as would be readily understood. By employing these types ofdata efficient algorithms, the synchronization module can reduceinitialization time for the synchronization process. According to someembodiments of the present technology, by using one or more dataefficient methods or algorithms, correlation between one or more piecesof data that may be located on the computing device with one or morepieces of data previously transcoded and synchronized on the mobileelectronic device can be enabled, thereby providing a means for limitingduplicate copying of one or more pieces of data between the computingdevice and the mobile electronic device.

According to some embodiments, the synchronization module is configuredas a single inclusive module, wherein the format of the synchronizationmodule is capable of synchronizing a plurality of types of data, forexample photo data, PIM data, application data, music data and the like,and thus is independent of the mobile electronic device for which it isto perform synchronization. For example, this inclusive synchronizationmodule will not be dependent on the types of data that a the mobileelectronic device is capable of containing.

In some embodiments of the present technology, the synchronizationmodule is configured in a modular fashion, for example as illustrated inFIG. 4. For example, the synchronization module comprises a protocolmodule 450, which comprises a set of instructions that provide thegeneral functionality of the synchronization module. A plurality ofseparate data dependent modules can be operatively coupled to theprotocol module, each data dependent module providing a further set ofinstructions for the operation of the synchronization module. A furtherset of instructions of a data dependent module pertains to operationsspecific to types of data that the data dependent module is configuredto aid with synchronization.

For example, as illustrated in FIG. 4, there can be a PIM module 410,photo module 420, music module 430, application module 440 and one ormore other modules 445. Each of these data dependent modules areconfigured to perform the specific functions of the synchronizationmodule as it pertains to the data type for which the data dependentmodule is configured.

For example, a music module can be configured to scan a mobile devicefor unsynchronized music data, determine which music data is to besynchronized and determine one or more options for presentation to auser. In this example, the music module can be configured to generatethe one or more options at least in part based on the known organizationpattern used for music, for example by genre, artist, title, songduration, album, play frequency, and the like.

In some embodiments of the present technology, during initial setup of asynchronization module for the synchronization of a mobile electronicdevice and a computing device, only the data dependent modulescompatible with the mobile electronic device or computing device or bothcan be installed or uploaded. In this manner, the memory that is usedfor the storage of the synchronization module does not includeinformation relating to data dependent modules that would not be usedduring the synchronization process, thereby saving memory space.

Implementations of the present technology will now be further explainedwith regard to the example scenarios. It should be expressly understoodthat these scenarios are only examples and are provided solely for thepurposes of illustrating how the technology works in certaincircumstances. Accordingly, these examples should not be construed aslimiting any of the aspects of the technology already described aboveand claimed in the appended claims.

Consider first the example scenario depicted schematically withreference to FIGS. 5 to 8.

FIG. 5 illustrates a screen capture of an output device duringinitiation of a synchronization process according to an embodiment ofthe present technology. As can be seen from this figure, thesynchronization module has captured identification information 505relating to the mobile electronic device to be synchronized. Inaddition, a picture representation of the type of device 510 is alsoillustrated to facilitate verification of the mobile electronic deviceto be synchronized. In some embodiments of the present technology, thepicture representation of the device also includes a representation ofthe home page or wall paper 515 of the mobile electronic device, whereinthis information can also be captured by the synchronization module. Atthe bottom of the screen of the output device there is visuallypresented that there are “new items to sync” and associated activationbuttons 520.

FIG. 6 illustrates a close up view of the “new items to sync” indicationand associated activation buttons illustrated in FIG. 5. By pointingtowards select button 535, for example via mouseover or other selectionaction of an input device, a notification box 525 is presented whichfurther defines the types of data that is to be synchronized. Uponselection of the button Synch All 530 as illustrated in FIG. 6 and FIG.7, a further notification box is presented which defines the possibleoptions 540 for selection which would result in the synchronization ofthe selected pieces of data. By the selection of option Import Picturesand Video 545 a further screen illustrating the pictures that requiresynchronization 550 are presented, as shown in FIG. 8. As illustratedeach of the pictures originally has a check mark 555 associatedtherewith, which can imply that all pictures are to be synchronized. Byselecting a particular picture a de-selection indicator 565 can bepresented, which can enable that picture to be unselected forsynchronization. In addition, selection of the desired picture may alsobe done on a date basis, for example by un-checking box 560 all picturesfor Aug. 23, 2009 may be de-selected for synchronization. Uponfinalization of the selection process, those pieces of data that areselected for synchronization are synchronized between the mobileelectronic device and the computing device by the synchronizationmodule.

As would be readily understood, the manner in which selection orde-selection or both, of the one or more pieces of data is performed canbe varied in many ways and is considered to be within the scope of theinstant technology. Selection or de-selection or both may be performedon an item-by-item basis, in bulk, or a combination thereof. In someembodiments, a multi-level, expandable and interactive menu may bepresented to a user for selecting data at a desired level ofspecificity. A user may select data based on coarse categories, orexpand a coarse category into finer categories, one or more of which maybe selected. Multiple levels of categories may be provided, allowing auser to drill down to individual files for selection if desired.

FIG. 9 illustrates a configurable and expandable menu 900 presentedduring a selection process, according to embodiments of the presenttechnology. It should be noted that the mode of user interface of thepresent technology is not limited to drop down or pop-up menus, butrather other modes of displaying information to and receiving input froma user may be used as would be readily understood by a worker skilled inthe art. The menu 900 comprises a plurality of nested menu items,thereby facilitating selecting synchronization options at a plurality oflevels of specificity. Higher level menu items are expandable orcollapsible by user action to reveal or hide lower level menu item. Forexample, the “synchronize media” item 915, can be expanded to revealsub-items 920 by toggling expansion box 922, for example by mouse click.User selection of items to be synchronized may proceed by navigating tomenu items and selecting them for example using selection boxes such asboxes 924 and 926. The selection boxes may be check boxes, or may beassigned a numerical value corresponding to a desired priority for menuitems. In the present example, selection box 926 has been assigned“priority 1” and selection box 924 has been assigned “priority 2.” Insome embodiments, if a higher level item is selected, all of thesub-items under that item are also selected. Sub-items may bepredetermined categories, directories, files, groups of files, or thelike.

In some embodiments, the menu 900 may be configured based on factorssuch as files which require synchronization, aspects of the operativecoupling between computing device and mobile electronics device, such aslink effective speed, and the like. Selection of items to appear in themenu 900, order of the selected items, position in the hierarchy, andthe like, may be performed based on such factors. For example, whentotal synchronization can be performed via the available operativecoupling in less than a predetermined threshold amount of time, the menu900 can be configured so that a “synchronize all” option may be easilyselected, whereas when total synchronization is estimated to take longerthan the predetermined threshold, the menu 900 can be configured tofacilitate faster selection and prioritization of items to synchronize.In some embodiments, when a higher level item is expanded, the mobileelectronics device, or the computing device, or both, are re-scanned,for example in an iterative process, to determine which sub-items todisplay under the expanded item, in what order they are to be displayed,or at least a portion of the hierarchy of the sub-items, sub-sub-items,etc.

FIG. 9 also illustrates a graphical representation 930 of the estimatedtime to perform the synchronization with the current user-definedoptions. As illustrated, the estimate includes sub-estimates 932 and 934for synchronizing “priority 1” and “priority 2” items, respectively.

FIG. 10 is a block diagram depicting certain main components of anexemplary wireless communication device 600. It should be understoodthat this figure is intentionally simplified to show only certaincomponents; the device 600 may include other components beyond thoseshown in FIG. 2. The device 600 includes a microprocessor 602 (or simplya “processor”) which interacts with memory in the form of RAM 604 andflash memory 606 to enable a variety of device functions and to executean operating system for running software applications loaded on thedevice. The device 600 includes a radiofrequency (RF) transceiver 608for communicating wirelessly with a base station 665 of a wirelessnetwork 660, or alternatively or additionally for communicating directlywith another peer device such as a wireless communication device, forexample as may occur in some ad-hoc networks. The base station 665 maybe a cellular base station, wireless access point, or the like. The basestation 665 may change as the wireless communication device travels. TheRF transceiver includes a wireless communication channel fortransmitting and receiving data. The RF transceiver may further includea wireless voice channel for transmitting and receiving voicecommunications, for example concurrently with transmission and receptionof data over the same or a separate logical or physical channel.

The device 600 optionally includes a GPS receiver chipset 610 forreceiving GPS radio signals transmitted from one or more orbiting GPSsatellites 670. The GPS receiver chipset 610 can be embedded within thedevice or externally connected, such as, for example, a “Bluetooth” GPSpuck or dongle. Other positioning systems may also be used in place ofGPS, as would be readily understood by a worker skilled in the art.

In terms of input/output devices or user interfaces (UI's), the device600 typically includes a display 612 (e.g. a small LCD screen), athumbwheel or trackball 614, a keyboard 616, which in some embodimentsmay be integrated or enabled using the display such as a touch screendisplay, a USB 618 or serial port for connecting to peripheralequipment, a speaker 620 and a microphone 622. The device's display 612may optionally include a touch screen input device.

The wireless communication device 600 sends and receives communicationsignals via the RF transceiver 608. When communicating wirelessly with abase station 665 of a wireless network 660, the device 600 maycommunicate in accordance with one or more appropriate technologies suchas: Global Systems for Mobile communications (GSM), General Packet RadioService (GPRS), Code Division Multiple Access (CDMA) technologies,Wideband CDMA (WCDMA), whether 2G, 3G, High speed packet access (HSPA),Universal Mobile Telecommunication System (UMTS) based technologies,Long Term Evolution (LTE) technologies, Orthogonal Frequency DivisionMultiplexing (OFDM) technologies, Ultra-Wideband (UWB) technologies,WiFi or WiMAX technologies, or other communication technologies andprotocols as would readily be understood by a worker skilled in the art.In some embodiments, the wireless device 600 may be capable of operationusing multiple protocols. The base station 665 may be part of a wirelessnetwork, such as a cellular network, local-area network, wide-areanetwork, wireless hotspot network, or the like. The wirelesscommunication device, base station, network components, and the like,may be configured for data communication, voice communication, or acombination thereof, possibly using additional components,configurations and procedures where appropriate, such as SIM cards,authorization and authentication procedures, handoff procedures, and thelike, as would be readily understood by a worker skilled in the art.

The device 600 may be operatively coupled to a computing device forsynchronization via one or more available and substantially directcommunication links. For example, the RF transceiver 608 may beconfigured for communication via one or more wireless protocols such asBluetooth™, IEEE 802.11 or Wi-Fi™, Wireless USB, ZigBee™, or the like.The USB interface 618 may be additionally or alternatively used toprovide a wired communication link. In some embodiments, a communicationlink may be established via a removable memory module such as a SecureDigital (SD™) card.

FIG. 11 illustrates a portion of a method for synchronizing a mobileelectronic device with a computing device, according to embodiments ofthe present technology. The method optionally comprises determining 1100aspects of an operative interconnection between mobile electronic deviceand computing device, for example connection type or types, link speed,effective speed, and the like. Options are selected 1110 from a list ofpotential options for presenting to a user in the form of an interactivemenu, for example via a computing device or mobile electronic deviceoutput interface. Option selection 1110 may be based at least in part onthe determined aspects, possibly along with other aspects such as whichdata requires synchronization. The menu is populated 1120 with theselected options and organized 1130, for example by placing options inan order from top to bottom, and grouping options hierarchically intooptions, sub-options, etc. Organization 1130 may be based at least inpart on the determined aspects 1100. The interactive menu is thendisplayed to the user 1140. In some embodiments, upon user interaction1150 with the menu, the menu may be iteratively reconfigured, forexample by expanding sub-option groupings, reorganizing the menu, addingor subtracting options, or the like.

This new technology has been described in terms of specificimplementations and configurations (and variants thereof) which areintended to be exemplary only. The scope of the exclusive right soughtby the applicant is therefore intended to be limited solely by theappended claims.

1. A method of synchronizing a mobile electronic device with a computingdevice, the method comprising, following operative coupling of themobile electronic device with a synchronization module operative on thecomputing device: a) scanning the mobile electronic device by thesynchronization module; b) determining if there are one or more piecesof data requiring synchronization; c) determining one or more aspects ofthe operative coupling between the mobile electronic device and thesynchronization module; d) determining an expected amount of timeavailable for synchronization based at least in part on said determinedone or more aspects of the operative coupling; d) determining andproviding a user with one or more options for selection, each optionrepresenting instructions to synchronize a respective subset of thedetermined one or more pieces of data requiring synchronization, whereindetermining and providing said one or more options is based on theexpected amount of time available for synchronization; and e)synchronizing the mobile electronic device with the computing devicebased at least in part on a selected one of the one or more options. 2.The method according to claim 1, wherein each of the one or more optionsfurther represents a synchronization sequence indicative of an order inwhich elements of said respective subset of the determined one or morepieces of data requiring synchronization are to be synchronized.
 3. Themethod according to claim 1, wherein at least one of the one or moreaspects are selected from the group comprising: communication link type,communication link protocol, communication link overhead, communicationlink reliability, communication link uptime, communication linkbandwidth, communication link delay, communication link error rate,communication link signal-to-noise ratio, communication link effectivespeed, estimated synchronization time, and synchronization time budget.4. The method according to claim 1, wherein determining and providingthe user with one or more options for selection comprises selecting oneor more options from a list of potential options, populating a menu withthe selected one or more options, and organizing the menu in a selectedmanner.
 5. The method according to claim 1, wherein the options forsynchronization include options for specifying a prioritization of dataitems to be synchronized.
 6. The method according to claim 1, whereinthe options for synchronization can be selected at a plurality of levelsof specificity.
 7. The method according to claim 1, wherein scanning themobile device, determining if there are one or more pieces of datarequiring synchronization, and determining and providing the user withone or more options for selection proceed according to an iterativeprocess.
 8. The method according to claim 1, the method furthercomprising capturing one or more identification parameters of the mobileelectronic device and presenting an indication of the one or moreidentification parameters to the user.
 9. The method according to claim1, wherein an increasing number of said one or more options are providedfor selection as the expected amount of time available forsynchronization decreases relative to an estimated time required tosynchronize all of the one or more pieces of data requiringsynchronization.
 10. A system for synchronizing a mobile electronicdevice with a computing device, the system comprising: a) asynchronization module at least in part operative on the computingdevice, the synchronization module configured to: scan the mobileelectronic device; determine if there are one or more pieces of datarequiring synchronization; determine one or more aspects of theoperative coupling between the mobile electronic device and thecomputing device; determine an expected amount of time available forsynchronization based at least in part on said determined one or moreaspects of the operative coupling; and determine one or more options,each option representing instructions to synchronize a respective subsetof the determined one or more pieces of data requiring synchronization,wherein determining said one or more options is based on the expectedamount of time available for synchronization; b) an output deviceoperatively coupled to the synchronization module, the output deviceconfigured to present the one or more options; and c) a user inputdevice operatively coupled to the synchronization module, the inputdevice configured to receive an option selection; wherein thesynchronization module is further configured to synchronize the mobileelectronic device with the computing device at least in part based onthe option selection.
 11. The system according to claim 10, wherein thesynchronization module comprises a protocol module and one or moreseparate data dependent modules.
 12. The system according to claim 10,wherein each of the one or more options further represents asynchronization sequence indicative of an order in which elements ofsaid respective subset of the determined one or more pieces of datarequiring synchronization are to be synchronized.
 13. The systemaccording to claim 10, wherein at least one of the one or more aspectsare selected from the group comprising: communication link type,communication link protocol, communication link overhead, communicationlink reliability, communication link uptime, communication linkbandwidth, communication link delay, communication link error rate,communication link signal-to-noise ratio, communication link effectivespeed, estimated synchronization time, and synchronization time budget.14. The system according to claim 10, wherein determining the one ormore options comprises selecting one or more options from a list ofpotential options, populating a menu with the selected one or moreoptions, and organizing the menu in a selected manner.
 15. The systemaccording to claim 10, wherein the one or more options include optionsfor specifying a prioritization of data items to be synchronized. 16.The system according to claim 10, wherein the options forsynchronization can be selected at a plurality of levels of specificity.17. The system according to claim 10, wherein scanning the mobiledevice, determining if there are one or more pieces of data requiringsynchronization, and determining and providing the user with one or moreoptions for selection proceed according to an iterative process.
 18. Thesystem according to claim 10, the synchronization module furtherconfigured to capture one or more identification parameters of themobile electronic device, and the output device further configured topresent an indication of the one or more identification parameters. 19.The system according to claim 10, wherein an increasing number of saidone or more options are provided for selection as the expected amount oftime available for synchronization decreases relative to an estimatedtime required to synchronize all of the one or more pieces of datarequiring synchronization.
 20. A computer program product forsynchronizing a mobile electronic device with a computing device, thecomputer program product comprising a non-transitory computer readablemedium having code embedded therein which, when loaded into memory andexecuted on a processor is adapted to: a) scan the mobile electronicdevice; b) determine if there are one or more pieces of data requiringsynchronization; c) determine one or more aspects of the operativecoupling between the mobile electronic device and the synchronizationmodule; d) determine an expected amount of time available forsynchronization based at least in part on said determined one or moreaspects of the operative coupling; d) determine and provide a user withone or more options for selection, each option representing instructionsto synchronize a respective subset of the determined one or more piecesof data requiring synchronization, wherein determining and providingsaid one or more options is based on the expected amount of timeavailable for synchronization; and e) synchronize the mobile electronicdevice with the computing device based at least in part on a selectedone of the one or more options.